package com.csdj.youxi.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class AppInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AppInfoExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameIsNull() {
            addCriterion("software_name is null");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameIsNotNull() {
            addCriterion("software_name is not null");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameEqualTo(String value) {
            addCriterion("software_name =", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameNotEqualTo(String value) {
            addCriterion("software_name <>", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameGreaterThan(String value) {
            addCriterion("software_name >", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameGreaterThanOrEqualTo(String value) {
            addCriterion("software_name >=", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameLessThan(String value) {
            addCriterion("software_name <", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameLessThanOrEqualTo(String value) {
            addCriterion("software_name <=", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameLike(String value) {
            addCriterion("software_name like", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameNotLike(String value) {
            addCriterion("software_name not like", value, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameIn(List<String> values) {
            addCriterion("software_name in", values, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameNotIn(List<String> values) {
            addCriterion("software_name not in", values, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameBetween(String value1, String value2) {
            addCriterion("software_name between", value1, value2, "softwareName");
            return (Criteria) this;
        }

        public Criteria andSoftwareNameNotBetween(String value1, String value2) {
            addCriterion("software_name not between", value1, value2, "softwareName");
            return (Criteria) this;
        }

        public Criteria andApkNameIsNull() {
            addCriterion("apk_name is null");
            return (Criteria) this;
        }

        public Criteria andApkNameIsNotNull() {
            addCriterion("apk_name is not null");
            return (Criteria) this;
        }

        public Criteria andApkNameEqualTo(String value) {
            addCriterion("apk_name =", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameNotEqualTo(String value) {
            addCriterion("apk_name <>", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameGreaterThan(String value) {
            addCriterion("apk_name >", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameGreaterThanOrEqualTo(String value) {
            addCriterion("apk_name >=", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameLessThan(String value) {
            addCriterion("apk_name <", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameLessThanOrEqualTo(String value) {
            addCriterion("apk_name <=", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameLike(String value) {
            addCriterion("apk_name like", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameNotLike(String value) {
            addCriterion("apk_name not like", value, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameIn(List<String> values) {
            addCriterion("apk_name in", values, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameNotIn(List<String> values) {
            addCriterion("apk_name not in", values, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameBetween(String value1, String value2) {
            addCriterion("apk_name between", value1, value2, "apkName");
            return (Criteria) this;
        }

        public Criteria andApkNameNotBetween(String value1, String value2) {
            addCriterion("apk_name not between", value1, value2, "apkName");
            return (Criteria) this;
        }

        public Criteria andSupportRomIsNull() {
            addCriterion("support_rom is null");
            return (Criteria) this;
        }

        public Criteria andSupportRomIsNotNull() {
            addCriterion("support_rom is not null");
            return (Criteria) this;
        }

        public Criteria andSupportRomEqualTo(String value) {
            addCriterion("support_rom =", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomNotEqualTo(String value) {
            addCriterion("support_rom <>", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomGreaterThan(String value) {
            addCriterion("support_rom >", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomGreaterThanOrEqualTo(String value) {
            addCriterion("support_rom >=", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomLessThan(String value) {
            addCriterion("support_rom <", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomLessThanOrEqualTo(String value) {
            addCriterion("support_rom <=", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomLike(String value) {
            addCriterion("support_rom like", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomNotLike(String value) {
            addCriterion("support_rom not like", value, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomIn(List<String> values) {
            addCriterion("support_rom in", values, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomNotIn(List<String> values) {
            addCriterion("support_rom not in", values, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomBetween(String value1, String value2) {
            addCriterion("support_rom between", value1, value2, "supportRom");
            return (Criteria) this;
        }

        public Criteria andSupportRomNotBetween(String value1, String value2) {
            addCriterion("support_rom not between", value1, value2, "supportRom");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageIsNull() {
            addCriterion("interface_language is null");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageIsNotNull() {
            addCriterion("interface_language is not null");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageEqualTo(String value) {
            addCriterion("interface_language =", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageNotEqualTo(String value) {
            addCriterion("interface_language <>", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageGreaterThan(String value) {
            addCriterion("interface_language >", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageGreaterThanOrEqualTo(String value) {
            addCriterion("interface_language >=", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageLessThan(String value) {
            addCriterion("interface_language <", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageLessThanOrEqualTo(String value) {
            addCriterion("interface_language <=", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageLike(String value) {
            addCriterion("interface_language like", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageNotLike(String value) {
            addCriterion("interface_language not like", value, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageIn(List<String> values) {
            addCriterion("interface_language in", values, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageNotIn(List<String> values) {
            addCriterion("interface_language not in", values, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageBetween(String value1, String value2) {
            addCriterion("interface_language between", value1, value2, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andInterfaceLanguageNotBetween(String value1, String value2) {
            addCriterion("interface_language not between", value1, value2, "interfaceLanguage");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeIsNull() {
            addCriterion("software_size is null");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeIsNotNull() {
            addCriterion("software_size is not null");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeEqualTo(Integer value) {
            addCriterion("software_size =", value, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeNotEqualTo(Integer value) {
            addCriterion("software_size <>", value, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeGreaterThan(Integer value) {
            addCriterion("software_size >", value, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeGreaterThanOrEqualTo(Integer value) {
            addCriterion("software_size >=", value, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeLessThan(Integer value) {
            addCriterion("software_size <", value, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeLessThanOrEqualTo(Integer value) {
            addCriterion("software_size <=", value, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeIn(List<Integer> values) {
            addCriterion("software_size in", values, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeNotIn(List<Integer> values) {
            addCriterion("software_size not in", values, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeBetween(Integer value1, Integer value2) {
            addCriterion("software_size between", value1, value2, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andSoftwareSizeNotBetween(Integer value1, Integer value2) {
            addCriterion("software_size not between", value1, value2, "softwareSize");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNull() {
            addCriterion("update_date is null");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNotNull() {
            addCriterion("update_date is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateDateEqualTo(Date value) {
            addCriterion("update_date =", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotEqualTo(Date value) {
            addCriterion("update_date <>", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThan(Date value) {
            addCriterion("update_date >", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("update_date >=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThan(Date value) {
            addCriterion("update_date <", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThanOrEqualTo(Date value) {
            addCriterion("update_date <=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIn(List<Date> values) {
            addCriterion("update_date in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotIn(List<Date> values) {
            addCriterion("update_date not in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateBetween(Date value1, Date value2) {
            addCriterion("update_date between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotBetween(Date value1, Date value2) {
            addCriterion("update_date not between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andDevIdIsNull() {
            addCriterion("dev_id is null");
            return (Criteria) this;
        }

        public Criteria andDevIdIsNotNull() {
            addCriterion("dev_id is not null");
            return (Criteria) this;
        }

        public Criteria andDevIdEqualTo(Integer value) {
            addCriterion("dev_id =", value, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdNotEqualTo(Integer value) {
            addCriterion("dev_id <>", value, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdGreaterThan(Integer value) {
            addCriterion("dev_id >", value, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("dev_id >=", value, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdLessThan(Integer value) {
            addCriterion("dev_id <", value, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdLessThanOrEqualTo(Integer value) {
            addCriterion("dev_id <=", value, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdIn(List<Integer> values) {
            addCriterion("dev_id in", values, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdNotIn(List<Integer> values) {
            addCriterion("dev_id not in", values, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdBetween(Integer value1, Integer value2) {
            addCriterion("dev_id between", value1, value2, "devId");
            return (Criteria) this;
        }

        public Criteria andDevIdNotBetween(Integer value1, Integer value2) {
            addCriterion("dev_id not between", value1, value2, "devId");
            return (Criteria) this;
        }

        public Criteria andAppInfoIsNull() {
            addCriterion("app_info is null");
            return (Criteria) this;
        }

        public Criteria andAppInfoIsNotNull() {
            addCriterion("app_info is not null");
            return (Criteria) this;
        }

        public Criteria andAppInfoEqualTo(String value) {
            addCriterion("app_info =", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoNotEqualTo(String value) {
            addCriterion("app_info <>", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoGreaterThan(String value) {
            addCriterion("app_info >", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoGreaterThanOrEqualTo(String value) {
            addCriterion("app_info >=", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoLessThan(String value) {
            addCriterion("app_info <", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoLessThanOrEqualTo(String value) {
            addCriterion("app_info <=", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoLike(String value) {
            addCriterion("app_info like", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoNotLike(String value) {
            addCriterion("app_info not like", value, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoIn(List<String> values) {
            addCriterion("app_info in", values, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoNotIn(List<String> values) {
            addCriterion("app_info not in", values, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoBetween(String value1, String value2) {
            addCriterion("app_info between", value1, value2, "appInfo");
            return (Criteria) this;
        }

        public Criteria andAppInfoNotBetween(String value1, String value2) {
            addCriterion("app_info not between", value1, value2, "appInfo");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("`status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("`status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("`status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("`status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("`status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("`status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("`status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("`status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("`status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("`status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("`status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("`status` not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateIsNull() {
            addCriterion("on_sale_date is null");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateIsNotNull() {
            addCriterion("on_sale_date is not null");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateEqualTo(String value) {
            addCriterion("on_sale_date =", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateNotEqualTo(String value) {
            addCriterion("on_sale_date <>", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateGreaterThan(String value) {
            addCriterion("on_sale_date >", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateGreaterThanOrEqualTo(String value) {
            addCriterion("on_sale_date >=", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateLessThan(String value) {
            addCriterion("on_sale_date <", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateLessThanOrEqualTo(String value) {
            addCriterion("on_sale_date <=", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateLike(String value) {
            addCriterion("on_sale_date like", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateNotLike(String value) {
            addCriterion("on_sale_date not like", value, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateIn(List<String> values) {
            addCriterion("on_sale_date in", values, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateNotIn(List<String> values) {
            addCriterion("on_sale_date not in", values, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateBetween(String value1, String value2) {
            addCriterion("on_sale_date between", value1, value2, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOnSaleDateNotBetween(String value1, String value2) {
            addCriterion("on_sale_date not between", value1, value2, "onSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateIsNull() {
            addCriterion("off_sale_date is null");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateIsNotNull() {
            addCriterion("off_sale_date is not null");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateEqualTo(String value) {
            addCriterion("off_sale_date =", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateNotEqualTo(String value) {
            addCriterion("off_sale_date <>", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateGreaterThan(String value) {
            addCriterion("off_sale_date >", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateGreaterThanOrEqualTo(String value) {
            addCriterion("off_sale_date >=", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateLessThan(String value) {
            addCriterion("off_sale_date <", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateLessThanOrEqualTo(String value) {
            addCriterion("off_sale_date <=", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateLike(String value) {
            addCriterion("off_sale_date like", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateNotLike(String value) {
            addCriterion("off_sale_date not like", value, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateIn(List<String> values) {
            addCriterion("off_sale_date in", values, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateNotIn(List<String> values) {
            addCriterion("off_sale_date not in", values, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateBetween(String value1, String value2) {
            addCriterion("off_sale_date between", value1, value2, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andOffSaleDateNotBetween(String value1, String value2) {
            addCriterion("off_sale_date not between", value1, value2, "offSaleDate");
            return (Criteria) this;
        }

        public Criteria andFlatformIdIsNull() {
            addCriterion("flatform_id is null");
            return (Criteria) this;
        }

        public Criteria andFlatformIdIsNotNull() {
            addCriterion("flatform_id is not null");
            return (Criteria) this;
        }

        public Criteria andFlatformIdEqualTo(Integer value) {
            addCriterion("flatform_id =", value, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdNotEqualTo(Integer value) {
            addCriterion("flatform_id <>", value, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdGreaterThan(Integer value) {
            addCriterion("flatform_id >", value, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("flatform_id >=", value, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdLessThan(Integer value) {
            addCriterion("flatform_id <", value, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdLessThanOrEqualTo(Integer value) {
            addCriterion("flatform_id <=", value, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdIn(List<Integer> values) {
            addCriterion("flatform_id in", values, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdNotIn(List<Integer> values) {
            addCriterion("flatform_id not in", values, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdBetween(Integer value1, Integer value2) {
            addCriterion("flatform_id between", value1, value2, "flatformId");
            return (Criteria) this;
        }

        public Criteria andFlatformIdNotBetween(Integer value1, Integer value2) {
            addCriterion("flatform_id not between", value1, value2, "flatformId");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13IsNull() {
            addCriterion("category_lever13 is null");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13IsNotNull() {
            addCriterion("category_lever13 is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13EqualTo(Integer value) {
            addCriterion("category_lever13 =", value, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13NotEqualTo(Integer value) {
            addCriterion("category_lever13 <>", value, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13GreaterThan(Integer value) {
            addCriterion("category_lever13 >", value, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13GreaterThanOrEqualTo(Integer value) {
            addCriterion("category_lever13 >=", value, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13LessThan(Integer value) {
            addCriterion("category_lever13 <", value, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13LessThanOrEqualTo(Integer value) {
            addCriterion("category_lever13 <=", value, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13In(List<Integer> values) {
            addCriterion("category_lever13 in", values, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13NotIn(List<Integer> values) {
            addCriterion("category_lever13 not in", values, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13Between(Integer value1, Integer value2) {
            addCriterion("category_lever13 between", value1, value2, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andCategoryLever13NotBetween(Integer value1, Integer value2) {
            addCriterion("category_lever13 not between", value1, value2, "categoryLever13");
            return (Criteria) this;
        }

        public Criteria andDownloadsIsNull() {
            addCriterion("downloads is null");
            return (Criteria) this;
        }

        public Criteria andDownloadsIsNotNull() {
            addCriterion("downloads is not null");
            return (Criteria) this;
        }

        public Criteria andDownloadsEqualTo(Integer value) {
            addCriterion("downloads =", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsNotEqualTo(Integer value) {
            addCriterion("downloads <>", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsGreaterThan(Integer value) {
            addCriterion("downloads >", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsGreaterThanOrEqualTo(Integer value) {
            addCriterion("downloads >=", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsLessThan(Integer value) {
            addCriterion("downloads <", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsLessThanOrEqualTo(Integer value) {
            addCriterion("downloads <=", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsIn(List<Integer> values) {
            addCriterion("downloads in", values, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsNotIn(List<Integer> values) {
            addCriterion("downloads not in", values, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsBetween(Integer value1, Integer value2) {
            addCriterion("downloads between", value1, value2, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsNotBetween(Integer value1, Integer value2) {
            addCriterion("downloads not between", value1, value2, "downloads");
            return (Criteria) this;
        }

        public Criteria andCreatedByIsNull() {
            addCriterion("created_by is null");
            return (Criteria) this;
        }

        public Criteria andCreatedByIsNotNull() {
            addCriterion("created_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedByEqualTo(Integer value) {
            addCriterion("created_by =", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotEqualTo(Integer value) {
            addCriterion("created_by <>", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByGreaterThan(Integer value) {
            addCriterion("created_by >", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByGreaterThanOrEqualTo(Integer value) {
            addCriterion("created_by >=", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByLessThan(Integer value) {
            addCriterion("created_by <", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByLessThanOrEqualTo(Integer value) {
            addCriterion("created_by <=", value, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByIn(List<Integer> values) {
            addCriterion("created_by in", values, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotIn(List<Integer> values) {
            addCriterion("created_by not in", values, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByBetween(Integer value1, Integer value2) {
            addCriterion("created_by between", value1, value2, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedByNotBetween(Integer value1, Integer value2) {
            addCriterion("created_by not between", value1, value2, "createdBy");
            return (Criteria) this;
        }

        public Criteria andCreatedDateIsNull() {
            addCriterion("created_date is null");
            return (Criteria) this;
        }

        public Criteria andCreatedDateIsNotNull() {
            addCriterion("created_date is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedDateEqualTo(Date value) {
            addCriterion("created_date =", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateNotEqualTo(Date value) {
            addCriterion("created_date <>", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateGreaterThan(Date value) {
            addCriterion("created_date >", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateGreaterThanOrEqualTo(Date value) {
            addCriterion("created_date >=", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateLessThan(Date value) {
            addCriterion("created_date <", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateLessThanOrEqualTo(Date value) {
            addCriterion("created_date <=", value, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateIn(List<Date> values) {
            addCriterion("created_date in", values, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateNotIn(List<Date> values) {
            addCriterion("created_date not in", values, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateBetween(Date value1, Date value2) {
            addCriterion("created_date between", value1, value2, "createdDate");
            return (Criteria) this;
        }

        public Criteria andCreatedDateNotBetween(Date value1, Date value2) {
            addCriterion("created_date not between", value1, value2, "createdDate");
            return (Criteria) this;
        }

        public Criteria andModifyByIsNull() {
            addCriterion("modify_by is null");
            return (Criteria) this;
        }

        public Criteria andModifyByIsNotNull() {
            addCriterion("modify_by is not null");
            return (Criteria) this;
        }

        public Criteria andModifyByEqualTo(Integer value) {
            addCriterion("modify_by =", value, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByNotEqualTo(Integer value) {
            addCriterion("modify_by <>", value, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByGreaterThan(Integer value) {
            addCriterion("modify_by >", value, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByGreaterThanOrEqualTo(Integer value) {
            addCriterion("modify_by >=", value, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByLessThan(Integer value) {
            addCriterion("modify_by <", value, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByLessThanOrEqualTo(Integer value) {
            addCriterion("modify_by <=", value, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByIn(List<Integer> values) {
            addCriterion("modify_by in", values, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByNotIn(List<Integer> values) {
            addCriterion("modify_by not in", values, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByBetween(Integer value1, Integer value2) {
            addCriterion("modify_by between", value1, value2, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyByNotBetween(Integer value1, Integer value2) {
            addCriterion("modify_by not between", value1, value2, "modifyBy");
            return (Criteria) this;
        }

        public Criteria andModifyDateIsNull() {
            addCriterion("modify_date is null");
            return (Criteria) this;
        }

        public Criteria andModifyDateIsNotNull() {
            addCriterion("modify_date is not null");
            return (Criteria) this;
        }

        public Criteria andModifyDateEqualTo(Date value) {
            addCriterion("modify_date =", value, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateNotEqualTo(Date value) {
            addCriterion("modify_date <>", value, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateGreaterThan(Date value) {
            addCriterion("modify_date >", value, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateGreaterThanOrEqualTo(Date value) {
            addCriterion("modify_date >=", value, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateLessThan(Date value) {
            addCriterion("modify_date <", value, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateLessThanOrEqualTo(Date value) {
            addCriterion("modify_date <=", value, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateIn(List<Date> values) {
            addCriterion("modify_date in", values, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateNotIn(List<Date> values) {
            addCriterion("modify_date not in", values, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateBetween(Date value1, Date value2) {
            addCriterion("modify_date between", value1, value2, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andModifyDateNotBetween(Date value1, Date value2) {
            addCriterion("modify_date not between", value1, value2, "modifyDate");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11IsNull() {
            addCriterion("category_lever11 is null");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11IsNotNull() {
            addCriterion("category_lever11 is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11EqualTo(Integer value) {
            addCriterion("category_lever11 =", value, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11NotEqualTo(Integer value) {
            addCriterion("category_lever11 <>", value, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11GreaterThan(Integer value) {
            addCriterion("category_lever11 >", value, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11GreaterThanOrEqualTo(Integer value) {
            addCriterion("category_lever11 >=", value, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11LessThan(Integer value) {
            addCriterion("category_lever11 <", value, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11LessThanOrEqualTo(Integer value) {
            addCriterion("category_lever11 <=", value, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11In(List<Integer> values) {
            addCriterion("category_lever11 in", values, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11NotIn(List<Integer> values) {
            addCriterion("category_lever11 not in", values, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11Between(Integer value1, Integer value2) {
            addCriterion("category_lever11 between", value1, value2, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever11NotBetween(Integer value1, Integer value2) {
            addCriterion("category_lever11 not between", value1, value2, "categoryLever11");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12IsNull() {
            addCriterion("category_lever12 is null");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12IsNotNull() {
            addCriterion("category_lever12 is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12EqualTo(Integer value) {
            addCriterion("category_lever12 =", value, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12NotEqualTo(Integer value) {
            addCriterion("category_lever12 <>", value, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12GreaterThan(Integer value) {
            addCriterion("category_lever12 >", value, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12GreaterThanOrEqualTo(Integer value) {
            addCriterion("category_lever12 >=", value, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12LessThan(Integer value) {
            addCriterion("category_lever12 <", value, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12LessThanOrEqualTo(Integer value) {
            addCriterion("category_lever12 <=", value, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12In(List<Integer> values) {
            addCriterion("category_lever12 in", values, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12NotIn(List<Integer> values) {
            addCriterion("category_lever12 not in", values, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12Between(Integer value1, Integer value2) {
            addCriterion("category_lever12 between", value1, value2, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andCategoryLever12NotBetween(Integer value1, Integer value2) {
            addCriterion("category_lever12 not between", value1, value2, "categoryLever12");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathIsNull() {
            addCriterion("logo_pic_path is null");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathIsNotNull() {
            addCriterion("logo_pic_path is not null");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathEqualTo(String value) {
            addCriterion("logo_pic_path =", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathNotEqualTo(String value) {
            addCriterion("logo_pic_path <>", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathGreaterThan(String value) {
            addCriterion("logo_pic_path >", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathGreaterThanOrEqualTo(String value) {
            addCriterion("logo_pic_path >=", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathLessThan(String value) {
            addCriterion("logo_pic_path <", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathLessThanOrEqualTo(String value) {
            addCriterion("logo_pic_path <=", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathLike(String value) {
            addCriterion("logo_pic_path like", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathNotLike(String value) {
            addCriterion("logo_pic_path not like", value, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathIn(List<String> values) {
            addCriterion("logo_pic_path in", values, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathNotIn(List<String> values) {
            addCriterion("logo_pic_path not in", values, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathBetween(String value1, String value2) {
            addCriterion("logo_pic_path between", value1, value2, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoPicPathNotBetween(String value1, String value2) {
            addCriterion("logo_pic_path not between", value1, value2, "logoPicPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathIsNull() {
            addCriterion("logo_loc_path is null");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathIsNotNull() {
            addCriterion("logo_loc_path is not null");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathEqualTo(String value) {
            addCriterion("logo_loc_path =", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathNotEqualTo(String value) {
            addCriterion("logo_loc_path <>", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathGreaterThan(String value) {
            addCriterion("logo_loc_path >", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathGreaterThanOrEqualTo(String value) {
            addCriterion("logo_loc_path >=", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathLessThan(String value) {
            addCriterion("logo_loc_path <", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathLessThanOrEqualTo(String value) {
            addCriterion("logo_loc_path <=", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathLike(String value) {
            addCriterion("logo_loc_path like", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathNotLike(String value) {
            addCriterion("logo_loc_path not like", value, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathIn(List<String> values) {
            addCriterion("logo_loc_path in", values, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathNotIn(List<String> values) {
            addCriterion("logo_loc_path not in", values, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathBetween(String value1, String value2) {
            addCriterion("logo_loc_path between", value1, value2, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andLogoLocPathNotBetween(String value1, String value2) {
            addCriterion("logo_loc_path not between", value1, value2, "logoLocPath");
            return (Criteria) this;
        }

        public Criteria andVersionIdIsNull() {
            addCriterion("version_id is null");
            return (Criteria) this;
        }

        public Criteria andVersionIdIsNotNull() {
            addCriterion("version_id is not null");
            return (Criteria) this;
        }

        public Criteria andVersionIdEqualTo(Integer value) {
            addCriterion("version_id =", value, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdNotEqualTo(Integer value) {
            addCriterion("version_id <>", value, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdGreaterThan(Integer value) {
            addCriterion("version_id >", value, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("version_id >=", value, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdLessThan(Integer value) {
            addCriterion("version_id <", value, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdLessThanOrEqualTo(Integer value) {
            addCriterion("version_id <=", value, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdIn(List<Integer> values) {
            addCriterion("version_id in", values, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdNotIn(List<Integer> values) {
            addCriterion("version_id not in", values, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdBetween(Integer value1, Integer value2) {
            addCriterion("version_id between", value1, value2, "versionId");
            return (Criteria) this;
        }

        public Criteria andVersionIdNotBetween(Integer value1, Integer value2) {
            addCriterion("version_id not between", value1, value2, "versionId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}